home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Plotting / GnuTerm_1.1a / Source / NeXT / Controller.m < prev    next >
Encoding:
Text File  |  1995-07-19  |  1.7 KB  |  107 lines

  1. #import "Controller.h"
  2. #import "gnuviewController.h"
  3. #import "GnuView.h"
  4.  
  5.  
  6. @implementation Controller
  7.  
  8. - (id) activeTerm
  9. {
  10.     return activeTerm;
  11. }
  12.  
  13.  
  14. - appDidInit:sender
  15. {
  16.     id prInfo;
  17.  
  18.     activeTerm = keyTerm = [self newGnuTerm:self];
  19.  
  20.     myConnection = [NXConnection registerRoot:self withName:"gnuplotServer"];
  21.     [myConnection runFromAppKit];
  22.  
  23.     prInfo = [NXApp printInfo];
  24.     [prInfo setMarginLeft:0 right:0 top:0 bottom:50];
  25.     [prInfo setOrientation:NX_LANDSCAPE andAdjust:YES];
  26.     [prInfo setHorizCentered:YES];
  27.     [prInfo setVertCentered:YES];
  28.  
  29.     return self;
  30. }
  31.  
  32. -newGnuTerm:sender
  33. {
  34.     id win;
  35.     char buf[256];
  36.     NXRect frame;
  37.  
  38.     if ([NXApp loadNibSection: "gnuview.nib" owner: self] == nil) {
  39.         return nil;
  40.     }
  41.  
  42.     if (win = [activeTerm window]) {
  43.         [win getFrame: &frame];
  44.         NX_X(&frame) += offset;
  45.         NX_Y(&frame) -= offset;
  46.         if ( (offset += 24.0) > 100.0) offset = 0.0;
  47.  
  48.         sprintf(buf, "gnuplot %d", ++gnuviewNum);
  49.         [win setTitle: buf];
  50.  
  51.         [win placeWindowAndDisplay: &frame];
  52.         [win makeKeyAndOrderFront: nil];
  53.  
  54.         return activeTerm;
  55.     }
  56.     return nil;
  57. }
  58.  
  59.  
  60. - setActiveTerm:(id) newTerm
  61. {
  62.     if (activeTerm != nil) [activeTerm deactivate:self];
  63.     
  64.     activeTerm = newTerm;
  65.     
  66.     return self;
  67. }
  68.  
  69. - printPScodeInKey:sender
  70. {
  71.     [[keyTerm gnuView] printPSCode:sender];
  72.  
  73.     return self;
  74.  
  75.  
  76. }
  77.  
  78. - setKeyTerm:newTerm
  79. {    
  80.     keyTerm = newTerm;
  81.  
  82.     [NameField setStringValue:[[keyTerm window] title]];
  83.     [NameField selectText:self];
  84.         
  85.     return self;
  86. }
  87.  
  88. - setKeyTitle:sender
  89. {
  90.     [[keyTerm window] setTitle:[NameField stringValue]];
  91.     [[NameField window] performClose:self];
  92.     return self;
  93. }
  94.  
  95. - executePScode:(char *)PSstring
  96. {
  97.     if (activeTerm == nil) [self newGnuTerm:self];
  98.     
  99.     [[activeTerm gnuView] executePS:PSstring];
  100.  
  101.     return self;
  102. }
  103.  
  104.  
  105.  
  106. @end
  107.